#!/bin/bash

# 脚本权限设置工具
# 为所有脚本文件添加执行权限

echo "🔑 设置脚本执行权限..."

# 定义需要设置权限的脚本文件
SCRIPT_FILES=(
  "backup-db.sh"
  "restore-db.sh"
  "set-permissions.sh"
  "init-db.sh"
  "setup.sh"
  "dev-setup.sh"
  "deploy.sh"
)

# 设置权限
for script in "${SCRIPT_FILES[@]}"; do
  if [ -f "$script" ]; then
    chmod +x "$script"
    echo "✓ 已设置权限: $script"
  else
    echo "⚠️  未找到文件: $script"
  fi
done

# 创建必要的目录
echo -e "\n📁 创建必要的目录..."

DIRS=(
  "../backups"
  "../logs"
  "../tmp"
)

for dir in "${DIRS[@]}"; do
  if [ ! -d "$dir" ]; then
    mkdir -p "$dir"
    echo "✓ 已创建目录: $dir"
  else
    echo "• 目录已存在: $dir"
  fi
done

# 设置目录权限
echo -e "\n🔒 设置目录权限..."
chmod 755 ../backups
chmod 755 ../logs
chmod 755 ../tmp
echo "✓ 目录权限设置完成"

echo -e "\n✅ 所有权限设置完成!"

# 显示当前权限状态
echo -e "\n📋 当前文件权限状态:"
ls -l *.sh
echo -e "\n📋 当前目录权限状态:"
ls -ld ../backups ../logs ../tmp 2>/dev/null

# 检查常见问题
echo -e "\n🔍 检查常见问题..."

# 检查 PostgreSQL 客户端工具
if ! command -v psql &> /dev/null; then
  echo "⚠️  警告: 未找到 PostgreSQL 客户端工具"
  echo "请安装 PostgreSQL 客户端:"
  echo "• Ubuntu/Debian: sudo apt-get install postgresql-client"
  echo "• macOS: brew install postgresql"
  echo "• Windows: 请从 PostgreSQL 官网下载安装程序"
fi

# 检查数据库配置文件
if [ ! -f "../.env" ]; then
  echo "⚠️  警告: 未找到 .env 文件"
  echo "请复制 .env.example 并配置数据库连接信息"
fi

# 检查 Node.js 环境
if ! command -v node &> /dev/null; then
  echo "⚠️  警告: 未找到 Node.js"
  echo "请安装 Node.js (推荐 v16 或更高版本)"
fi

if ! command -v npm &> /dev/null; then
  echo "⚠️  警告: 未找到 npm"
  echo "请检查 Node.js 安装是否完整"
fi

echo -e "\n💡 提示:"
echo "• 如遇权限问题请使用 sudo"
echo "• 数据库备份需要 PostgreSQL 客户端工具"
echo "• 请确保 .env 文件中配置了正确的数据库信息"
